# 示例一

import asyncio


async def func():
    print(1)
    response = await asyncio.sleep(2)  # 可以等待对象返回值
    print(2, response)


# asyncio.run(func())

# 示例二
import asyncio


async def others():
    print(1)
    await asyncio.sleep(2)
    print(2)
    return 3


async def func():
    print("执行函数内部代码")
    # 遇到IO耗时操作，挂起当前协程任务，等IO操作完成之后在继续往下执行。当前协程挂起时，事件循环可以去执行其他线程任务。
    response = await others()
    print("IO请求结束，结果为：", response)


# asyncio.run(func())

# 示例三
import asyncio


async def others():
    print(1)
    await asyncio.sleep(2)
    print(2)
    return 3


async def func():
    print("执行函数内部代码")
    # 遇到IO耗时操作，挂起当前协程任务，等IO操作完成之后在继续往下执行。当前协程挂起时，事件循环可以去执行其他线程任务。
    response = await others()
    print("IO请求结束，结果为：", response)

    response1 = await others()   # 一个线程函数可以多个await
    print("IO请求结束，结果为：", response1)


asyncio.run(func())
